#include <bits/stdc++.h>
using namespace std;
const int N = 506;
int n, m, a[N][N], b[N][N];

/*
这种变换对于矩阵来说
如果是
1： ** 
    **   该变换显然不会改变矩阵的奇偶性
2： **
    *     该变换也不会改变矩阵的奇偶性
3： * 
     *   该变换也不会改变矩阵的奇偶性
4： * 
    *     改变换也不会改变矩阵的奇偶性

由此可以猜测对于任意的变换，只要行列需要改变的值都是偶数就能成功
*/

int main() {
    cin >> n >> m;
    for (int i = 1; i <= n; i++)
        for (int j = 1; j <= m; j++)
            scanf("%d", &a[i][j]);
    for (int i = 1; i <= n; i++)
        for (int j = 1; j <= m; j++)
            scanf("%d", &b[i][j]);
    for (int i = 1; i <= n; i++)
        for (int j = 1; j <= m; j++)
            a[i][j] ^= b[i][j];
    for (int i = 1; i <= n; i++) {
        int o = 0;
        for (int j = 1; j <= m; j++)
            o ^= a[i][j];
        if (o) {
            puts("No");
            return 0;
        }
    }
    for (int j = 1; j <= m; j++) {
        int o = 0;
        for (int i = 1; i <= n; i++)
            o ^= a[i][j];
        if (o) {
            puts("No");
            return 0;
        }
    }
    puts("Yes");
    return 0;
}